package cn.iocoder.yudao.module.bill.controller.admin.bill.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 账单信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BillPageReqVO extends PageParam {

    @Schema(description = "账单标题")
    private String billTitle;

    @Schema(description = "账单备注", example = "随便")
    private String billRemark;

    @Schema(description = "账单金额")
    private BigDecimal billAmount;

    @Schema(description = "收支类型", example = "2")
    private String amountType;

    @Schema(description = "变动账户", example = "5933")
    private Long accountId;

    @Schema(description = "一级分类")
    private String cate1;

    @Schema(description = "二级分类")
    private String cate2;

    @Schema(description = "三级分类")
    private String cate3;

    @Schema(description = "账单标签")
    private String tags;

    @Schema(description = "账单所属模板", example = "6614")
    private String templateId;

    @Schema(description = "账单类型", example = "2")
    private String billType;

    @Schema(description = "账单阶段")
    private String billStage;

    @Schema(description = "账单状态", example = "1")
    private String billStatus;

    @Schema(description = "转账去向", example = "27884")
    private Long transAccountId;

    @Schema(description = "账单时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] billTime;

    @Schema(description = "外部说明", example = "随便")
    private String extRemark;

    @Schema(description = "外部付款账户", example = "2372")
    private String extFromAccount;

    @Schema(description = "外部付款人")
    private String extFromOwner;

    @Schema(description = "外部收款账户", example = "29717")
    private String extToAccount;

    @Schema(description = "外部收款人")
    private String extToOwner;

    @Schema(description = "补充信息")
    private String extInfo;

    @Schema(description = "账单来源")
    private String extBillSource;

    @Schema(description = "外部参数")
    private String extParam;

    @Schema(description = "排序号")
    private Integer orderNum;

    @Schema(description = "是否为资产")
    private Integer hasProperty;

    @Schema(description = "资产名称", example = "芋艿")
    private String propertyName;

    @Schema(description = "资产盘点时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] propertyCheckTime;

    @Schema(description = "资产类别")
    private String propertyCate;

    @Schema(description = "资产价值")
    private BigDecimal propertyValue;

    @Schema(description = "资产参数")
    private String propertyParam;

    @Schema(description = "资产备注", example = "你猜")
    private String propertyRemark;

    @Schema(description = "资产状态", example = "1")
    private String propertyStatus;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}